Linux | APT 命令详解
(๑•̀ㅂ•́) ✧ APT 命令详解
简介
apt-get 命令适用于 deb 包管理式的 Linux 操作系统(Debian、Ubuntu等),主要用于自动从互联网软件仓库中搜索、下载、安装、升级、卸载软件或操作系统。
高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。
– 来自维基百科
下面主要介绍一些基本用法,和我个人的使用经历
搜索软件
在安装软件前,你首先要在 apt 的官方仓库中搜索软件,从而确定你要安装的软件名称
1 | sudo apt-cache search <KeyPackageName> |
比如,我这里要使用 apt 来安装 JDK
在 apt 的仓库中,jdk 并不是就称为 jdk,因此,如果你直接来通过下面的命令来安装 JDK,
1 | ➜ ~ sudo apt-get install jdk |
会报上面的错误
1 | ➜ ~ sudo apt-cache search jdk |
以 终端输出的第一行为例,default-jdk-headless 是软件的名字,后面的内容是软件的简短介绍
想要看到更加详细的介绍,可使用下面的命令
1 | apt-cache show <PackageName> |
默认是列出源中所有的版本,可指定版本
1 | apt-cache show <PackageName>=<version> |
这里以 typora 这里软件为例
1 | ➜ ~ apt-cache show typora=0.11.2-1 |
安装软件
在我们已经知道软件在 apt 仓库中的软件名称后,我们就可以在终端键入下面的命令,来安装软件了
1 | sudo apt-get install openjdk-14-jdk -f |
-f 参数表明所有的 询问 的回应,就是 Yes
或者也可以
1 | sudo apt install openjdk-14-jdk |
在某些时候,我们需要安装某个软件的指定版本,
比如,我更新了我的 typora,更新后的版本为 0.11.2-1,就开始出现了严重的卡顿;因此,我退后上一个版本,可以在终端键入下面的命令来查询 apt 仓库 typora
所有的版本
1 | apt-cache madison typora |
输出结果如下:
1 | ➜ ~ apt-cache madison typora |
typora 并非开源软件,在默认的 Linux 仓库中没有这个这个软件,在官网 typora.io 中可以手动使用命令来添加镜像地址到本地计算机的镜像仓库列表中
进而指定一个老版本进行安装
1 | sudo apt-get install typora=0.9.98-1 |
部分软件,如 openjdk,在 apt 的源中,不同版本直接以 openjdk-14-jdk 、openjdk-11-jdk 这样的不同包名称而同时存在
下载软件
你可能会疑惑,不是已经说过 怎样安装软件 了,那么这里的内容是不是重复了,其实没有
上面所讲的 安装,其实是 下载 + 安装
即下面对应的 deb 包,然后自动调用 dpkg 命令进行安装
这里下载的软件内容的两种
- deb 包,即 二进制文件
- 源码包,顾名思义就是软件的源代码,当然,前提是软件是 开源 的
相关的命令如下:
1 | sudo apt-get source <PackageName> #下载软件包的源码 |
这里以 emacs 举例
- 这里的 源码,是从源中下载的,当然你也可以到 gnu 的官网下载源码包,只不过稍微麻烦
对于下载完成的 deb,你可以手动调用 dpkg 命令来进行安装
卸载软件
删除软件包, 保留配置文件
1
apt-get remove PackageName
删除软件包,同时删除配置文件
1
2apt-get --purge remove PackageName
apt-get purge PackageName删除为满足依赖, 而自动安装且不再使用的软件包
1
apt-get autoremove PackageName
删除配置文件,删除不再使用的依赖包
1
apt-get --purge autoremove PackageName
移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/
1
apt-get clean
移除已安装的软件的旧版本软件包
1
apt-get autoclean other
更新软件
更新安装源(Source),在更新源后,一定要运行这个命令
1
apt-get update
更新已安装的软件包
1
apt-get upgrade [软件包]
如果没有加软件包,默认是全部更新,甚至是shell内核,不要任意使用
更新已安装的软件包(识别并处理依赖关系的改变)
1
apt-get dist-upgrade
其它命令
查询依赖
1
2
3apt-cache depends PackageName # 查看该软件包需要哪些依赖包
apt-cache rdepends PackageName # 查看该软件包被哪些包依赖
apt-get check # 检查是否有损坏的依赖修补依赖
1
2
3
4
5apt-get --reinstall install PackageName # 重新安装
apt-get build-dep PackageName(包全名) # 安装源码包所需要的编译环境 (为源码包配置所需的编译依赖关系)
apt-get -f install # 修复依赖关系 使用该命令会修改所有软件中的缺失的依赖关系,一般是在使用
注:如果源中没有所依赖的包,就会将未安装完成的包删除掉。可以修补的依赖一般可以直接在源中进行下载的。
apt-cache policy <package name> # 比上一个详细一点。
create time: 2021-07-29 04:18:27
update time: 2021-07-29 04:52:32